package com.yueman.ptoolopenticket.ticket.Tpl;


import com.yueman.ptoolopenticket.ticket.dto.Result;
import com.yueman.ptoolopenticket.ticket.dto.request.lixin.*;
import com.yueman.ptoolopenticket.ticket.dto.response.lixin.*;

public interface CommonTemplate {

    /**
     * 实名认证查询
     * @param realNameAuthQueryReq
     * @return
     */
    public Result<RealNameAuthQueryRes> rnameAuthQuery(RealNameAuthQueryReq realNameAuthQueryReq);
    /**
     * 保存代开发票
     */
    public Result<InvoiceApplyRes> InvoiceApply(InvoiceApplyReq invoiceApplyReq);

    /**
     * 获取商品货物信息
     */
    public Result<GoodsRes> GoodsDetails(GoodsReq goodsReq);

    /**
     * 支付初始化
     *
     * @param payloadReq
     * @return
     */
    public Result<PayRes> Payload(PayReq payloadReq);

    /**
     * 支付
     * @return
     */
    public Result<PayRes> pay(PayReq payReq);

    /**
     * 支付确认
     * @param payConfirmReq
     * @return
     */
    public Result<PayConfirmReq> payConfirm(PayConfirmReq payConfirmReq);

    /**
     * 充值
     */
    public  Result<RechargeRes> Recharge(RechargeReq rechargeReq);

    /**
     * 充值查询
     */
    public Result<RechargeQueryRes> RechargeQuery(RechargeQueryReq rechargeQueryReq);

    /**
     * 账户查询
     */
    public Result<SubAcctQueryRes> SubAcctQuery(SubAcctQueryReq subAcctQueryReq);

    /**
     * 注册
     */
    public Result<UserRes> register(UserReq userReq);

    /**
     * 获取短信验证码
     *
     * @param verificationReq
     * @return
     */
    public Result<VerificationRes> VerificationCode(VerificationReq verificationReq);

    /**
     * 签约申请
     *
     * @param signReq
     * @return
     */
    public Result<SignRes> sign(SignReq signReq);

    /**
     * 签约申请查询
     *
     * @param signQueryReq
     * @return
     */
    public Result<SignQueryRes> signQuery(SignQueryReq signQueryReq);

    /**
     * 登录
     *
     * @param loginReq
     * @return
     */
    public Result<LoginRes> login(LoginReq loginReq);

    /**
     * 获取省份
     *
     * @param provinceReq
     * @return
     */
    public Result<String> Province(ProvinceReq provinceReq);

    /**
     * 获取市
     *
     * @param cityReq
     * @return
     */
    public Result<String> City(CityReq cityReq);

    /**
     * 获取区县
     */
    public Result<String> District(DistrictReq districtReq);

    /**
     * 单笔下发
     */
    public Result<SingleIssueRes> SingleIssue(SingleIssueReq signleIssueReq);

    /**
     * 单笔下发查询
     */
    public Result<SingleIssueQueryRes> SingleIssueQuery(SingleIssueQueryReq singleIssueQueryRes);

}
